package com.kk.permission.utils.floatwindow;

import android.content.Context;
import android.os.Build.VERSION;
import android.provider.Settings;
import android.util.Log;

public class FloatWindowPermissionCheck {
    public boolean checkPermission(Context context) {
        if (VERSION.SDK_INT < 23) {
//            if (RomUtils.checkIsMiuiRom()) {
//                return miuiPermissionCheck(context);
//            }
//            if (RomUtils.checkIsMeizuRom()) {
//                return meizuPermissionCheck(context);
            }
            if (RomUtils.checkIsHuaweiRom()) {
                return huaweiPermissionCheck(context);
            }
//            if (RomUtils.checkIs360Rom()) {
//                return qikuPermissionCheck(context);
//            }
//            if (RomUtils.checkIsOppoRom()) {
//                return oppoROMPermissionCheck(context);
//            }
//            if (RomUtils.checkIsVivoRom()) {
//                return vivoPermissionCheck(context);
//            }
//        }
        return commonROMPermissionCheck(context);
    }

    private boolean huaweiPermissionCheck(Context context) {
        return HuaweiUtils.checkFloatWindowPermission(context);
    }

//    private boolean miuiPermissionCheck(Context context) {
//        return MiuiUtils.checkFloatWindowPermission(context);
//    }
//
//    private boolean meizuPermissionCheck(Context context) {
//        return MeizuUtils.checkFloatWindowPermission(context);
//    }
//
//    private boolean qikuPermissionCheck(Context context) {
//        return QikuUtils.checkFloatWindowPermission(context);
//    }
//
//    private boolean oppoROMPermissionCheck(Context context) {
//        return OppoUtils.checkFloatWindowPermission(context);
//    }
//
//    private boolean vivoPermissionCheck(Context context) {
//        return VivoPermissionUtils.isFloatPermissionOpen(context);
//    }

    private boolean commonROMPermissionCheck(Context context) {
//        if (RomUtils.checkIsMeizuRom()) {
//            return meizuPermissionCheck(context);
//        }
        Boolean bool = false;
        Boolean valueOf = Boolean.valueOf(true);
        if (VERSION.SDK_INT >= 23) {
            try {
                bool = (Boolean) Settings.class.getDeclaredMethod("canDrawOverlays", new Class[]{Context.class}).invoke(null, new Object[]{context});
            } catch (Throwable e) {
                Log.e("FloatWindowPms", Log.getStackTraceString(e));
            }
            return bool;
        }
        bool = valueOf;
        return bool;
    }
}
